1. Technical Field
The invention disclosed broadly relates to data processing systems and methods and more particularly relates to cryptographic systems and methods for use in data processing systems to enhance security.
2. Background Art
The above referenced co-pending patent applications, which are incorporated herein by reference, describe a cryptographic architecture for validating that key management functions requested for a cryptographic key in a data processing system have been authorized by the originator of the key. The above referenced co-pending patent applications describe a method of key usage validation based on control vector checking. A control vector is a data structure comprising one or more fields of predefined values which collectively describe the intended usage of a cryptographic key with which it is associated. The control vector is specified by the key originator at key creation time. The referenced co-pending patent applications further describe methods of coupling the control vector to the key value with integrity to ensure that the assigned usage may be enforced by the key usage validation mechanism of the cryptographic architecture.
Control vector checking is a method of key usage validation in which control vectors are passed to a control vector checking unit within the physically secure cryptographic facility along with an operation code indicating the requested key management function to be performed. The control vector checking unit uses a set of checking rules to test and compare the contents of various fields within each passed control vector. If the control vectors satisfy the checking rules associated with the requested key management function, the control vector checking unit transmits a positive authorization signal to the instruction processor within the cryptographic facility which enables completion of the requested key management function. If one or more control vectors fail to satisfy the checking rules, a negative authorization signal is transmitted, and instruction execution is aborted.
The referenced co-pending patent applications describe various methods of establishing the control vector checking rules: static rules which are hard-wired or hard-coded into each executable instruction of the cryptographic facility, parametric rules which permit users or implementers to augment a base set of checking rules using control vector translation, and programmable checking rules which permit the checking criteria to be securely and dynamically loaded into the control vector checking unit from a repository which is external to the cryptographic facility.
The attentive reader will note that all methods of key usage validation are based on enforcing the usage attributes which were defined in the control vector associated with a cryptographic key by the key originator. Collectively, these methods of key usage validation are known as Control Vector (CV) enforcement. The characteristic which is common to all of the above-referenced CV enforcement methods is the notion of CV checking, i.e., applying a set of checking rules to the various predefined fields and values of one or more control vectors passed from the user to the cryptographic facility.
The CV checking method of CV enforcement requires the user to manage CVs outside the cryptographic facility. CV management is the collective term for the definition, distribution, and storage of control vectors. For example, the CV checking method of CV enforcement requires the user of a cryptographic facility to maintain a copy of the key originator's CV, since the CV must accompany its associated key whenever the key is passed to the cryptographic facility for processing a key management request. (The CV is necessary both to validate the requested usage of the key and to properly recover the plaintext form of the key.) The CV checking method further requires the user to define the entire contents of each CV before creating or processing encrypted keys. The user must also distribute the CV along with the encrypted key when the key is exported to other systems.